package com.gitee.srurl.core.enums;

/**
 * 响应code枚举类
 *
 * @author zxw
 * @date 2022/11/27
 */
public enum ResponseCodeEnums {

    /**
     * 成功
     */
    SUCCESS(20000, "请求成功！"),

    /**
     * 权限不足
     */
    PERMISSION(40001, "权限不足！"),

    /**
     * 登录过期
     */
    LOGIN_EXPIRE(40002, "登录过期！"),

    /**
     * 未登录
     */
    NO_LOGIN(40003, "登录失效，请先进行登录操作！"),

    /**
     * token验证失败
     */
    TOKEN_VERIFY_FAIL(40004, "身份验证失败！"),

    /**
     * UNAUTHORIZED
     */
    UNAUTHORIZED(40005, "认证失败，无法访问系统资源!"),

    /**
     * 请求方式不支持
     */
    REQUEST_TYPE_NONSUPPORT(40006, "请求方式不支持！"),
    /**
     * 未提供token
     */
    TOKEN_NOT_SUPPORT(40007, "未提供token信息！"),

    /**
     * token失效
     */
    TOKEN_INVALID(40008, "token失效，请重新登录！"),

    /**
     * token过期
     */
    TOKEN_EXPIRE(40009, "token过期，请重新登录！"),

    /**
     * 全局异常
     */
    GLOBAL_ERROR(50000, "系统异常！"),

    // ------------ 用户相关 start ---------------
    /**
     * 账户停用
     */
    USER_ACCOUNT_DISABLE(51001, "账户已被停用！"),

    /**
     * 账户不存在
     */
    USER_ACCOUNT_NOT_EXIST(51002, "账户不存在！"),

    /**
     * 账户设置异常
     */
    USER_ACCOUNT_EXCEPTION(51003, "账户数据异常！"),

    /**
     * 用户名或密码错误
     */
    USER_OR_PASSWORD_ERROR(51004, "用户名或密码错误！"),

    // ------------- 用户相关 end ----------------

    // -----------------------------------------------

    // ------------- api 接口相关异常 start -------------

    /**
     * 签名时间无效
     */
    API_USER_SIGN_TIME_INVALID(52001, "请求参数在当前时间内不允许使用！"),

    /**
     * 随机参数无效
     */
    API_USER_RANDOM_INVALID(52002, "r参数无效！"),

    /**
     * 签名无效
     */
    API_USER_SIGN_INVALID(52003, "签名无效！"),

    /**
     * 签名无效
     */
    API_USER_PARAMS_MISSING(52004, "参数缺失！"),


    /**
     * 签名无效
     */
    API_USER_NOT_ALLOW(52005, "不允许访问此接口！"),

    // -------------- api 接口相关异常 end --------------
    // -----------------------------------------------
    // -------------- 系统异常 start --------------

    /**
     * 序列化异常
     */
    SERIALIZED(53001, "数据转换错误！"),

    /**
     * 反序列化异常
     */
    DESERIALIZED(53002, "数据解析错误！"),

    /**
     * 功能未实现异常
     */
    NO_IMPLEMENTS(53003, "功能未实现！"),

    // -------------  系统异常 end -------------
    // -----------------------------------------------
    // -------------- 其他异常 start --------------
    /**
     * 参数校验失败
     */
    ASSERT_FAIL(59001, "数据校验失败！"),

    /**
     * 参数校验失败
     */
    VALIDATE_FAIL(59002, "数据校验失败！"),

    /**
     * 数据下载写回客户端失败
     */
    WEB_DOWNLOAD_FAIL(59003, "数据下载失败！"),
    /**
     * 短链生成异常
     */
    SHORT_URL_GENERATE_FAIL(59004, "短链生成失败！"),

    /**
     * 短链被禁用
     */
    SHORT_URL_DISABLED(59005, "短链被禁用！"),

    /**
     * 布隆过滤器不存在
     */
    BLOOM_FILTER_NO_EXIST(59006, "过滤器不存在！"),

    /**
     * 布隆过滤器不存在
     */
    JSON_ERROR(59007, "json转换移除！"),

    /**
     * sql参数不合法
     */
    SQL_PARAMS_ILLEGAL(59008, "sql参数不合法！"),
    // -------------- 其他异常 end --------------
    ;

    private final Integer code;

    private final String message;

    ResponseCodeEnums(Integer code, String message) {
        this.code = code;
        this.message = message;
    }

    public Integer code() {
        return code;
    }

    public String message() {
        return message;
    }
}
